package cn.mw.cmdb.link.service;

import cn.mw.cmdb.link.entity.*;
import cn.mw.cmdb.link.param.LinkParam;
import cn.mw.microMonitorCommon.api.cmdb.AssetInfo;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import jakarta.servlet.http.HttpServletResponse;
import org.springframework.web.multipart.MultipartFile;

import java.util.List;

public interface MwNetWorkLinkService {

    void saveLink(MwNetWorkLinkDto mwNetWorkLinkDto) throws Exception;

    void delLink(LinkParam linkParam) throws Exception;

    Page selectList(LinkParam linkParam) throws Exception;

    MwLinkIpAndInterfaceDto getDeviceIpAndInterface(LinkParam linkParam) throws Exception;

    MwLinkBandWidthDto getLinkBandWidthInfo(LinkParam linkParam);

    List<MwLinkTargetIpInfo> getTargetIpInfo(LinkParam linkParam) throws Exception;

    List<AssetInfo> getDeviceInfo() throws Exception;

    List<LinkHistoryTrendDto> getLinkHistoryTrendInfo(LinkParam linkParam) throws Exception;

    MwNetWorkLinkDto selectLinkByLinkId(LinkParam linkParam) throws Exception;

    void saveLinkTree(MwLinkTreeDto linkTreeDto);

    List<MwLinkTreeDto> selectLinkTree();

    void delLinkTree(LinkParam linkParam) throws Exception;

    List<MwNetWorkLinkDto> selectLinkByInstanceIds(List<String> instanceId) throws Exception;

    /**
     * 导入线路
     * @param file
     */
    void linkImport(MultipartFile file,HttpServletResponse response) throws Exception;

    void exportLinkTemplate(HttpServletResponse response) throws Exception;

    void linkExport(LinkParam linkParam,HttpServletResponse response) throws Exception;


}
